package com.wulis.provider.basic.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.wulis.provider.basic.model.dto.InsertOrganizationDto;
import com.wulis.provider.basic.model.dto.QueryOrganizationPageDto;
import com.wulis.provider.basic.model.dto.UpdateOrganizationDto;
import com.wulis.provider.basic.model.entity.Organization;
import com.wulis.common.support.BaseService;
import com.wulis.provider.basic.model.vo.QueryOrganizationListVo;
import com.wulis.provider.basic.model.vo.QueryOrganizationPageVo;
import com.wulis.provider.basic.model.vo.QueryOrganizationVo;
import lombok.NonNull;

import java.util.List;

/**
 * 基础信息管理:组织机构表 Service
 *
 * @author WuliBao
 * @date 2020-05-21
 */
public interface OrganizationService extends BaseService<Organization> {
    /**
     * WEB:查询机构列表(分页)
     *
     * @param queryOrganizationPageDto queryOrganizationPageDto
     * @return IPage
     */
    IPage<QueryOrganizationPageVo> queryOrganizationPage(@NonNull QueryOrganizationPageDto queryOrganizationPageDto);
    
    /**
     * WEB:查询机构列表(全量)
     *
     * @param enable enable
     * @return List
     */
    List<QueryOrganizationListVo> queryOrganizationList(Integer enable);
    
    /**
     * WEB:查询机构信息
     *
     * @param id id
     * @return QueryOrganizationVo
     */
    QueryOrganizationVo queryOrganization(@NonNull Long id);
    
    /**
     * WEB:新增机构信息
     *
     * @param insertOrganizationDto insertOrganizationDto
     * @return Integer
     */
    Integer insertOrganization(@NonNull InsertOrganizationDto insertOrganizationDto);
    
    /**
     * WEB:修改机构信息
     *
     * @param updateOrganizationDto updateOrganizationDto
     * @return Integer
     */
    Integer updateOrganization(@NonNull UpdateOrganizationDto updateOrganizationDto);
    
    /**
     * WEB:删除机构信息
     *
     * @param id id
     * @return Integer
     */
    Integer deleteOrganization(@NonNull Long id);
}
